home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / Caml Light 0.7 / Caml Light 0.7 source / src / From Franklin Chen / linker / Makefile
Makefile  |  1995-06-14  |  2KB  |  79 lines

  1. # Makefile for the Caml Light linker.
  2.  
  3. CAMLCOMP=::camlrun ::camlcomp
  4. CAMLLINK=::camlrun ::camllink
  5. INCLUDES=-stdlib ::lib -I ::compiler
  6. COMPFLAGS=-O fast {INCLUDES}
  7. LINKFLAGS=-g {INCLUDES}
  8.  
  9. EXTERNOBJS=config.zo misc.zo opcodes.zo
  10.  
  11. OBJS=predef.zo prim_c.zo symtable.zo patch.zo tr_const.zo link.zo ∂
  12.     readword.zo version.zo main.zo
  13.  
  14. all ƒ camllink
  15.  
  16. camllink ƒ {OBJS}
  17.     {CAMLLINK} {LINKFLAGS} -o camllink stdlib.zo {EXTERNOBJS} {OBJS}
  18.  
  19. clean ƒ
  20.     Delete -i ≈.z[io] || ;
  21.     Delete -i camllink
  22.  
  23. scratch ƒ clean
  24.     Delete -i predef.ml prim_c.ml
  25.     Delete -i Makefile.BAK
  26.  
  27. install ƒ
  28.     Duplicate -y camllink "{LIBDIR}camllink"
  29.  
  30. prim_c.ml  ƒ ::runtime:primitives
  31.     Duplicate -y ::runtime:primitives prim_c.ml
  32.     Open prim_c.ml; Find • prim_c.ml
  33.     Replace -c ∞ /(?≈)®1/ '  "®1";' prim_c.ml
  34.     Replace \;\ '|];;' prim_c.ml
  35.     Find • prim_c.ml
  36.     Echo 'let primitives_table = [|' >prim_c.ml.§
  37.     Close -y prim_c.ml
  38.  
  39. predef.ml  ƒ ::runtime:globals.h ::runtime:fail.h
  40.     Echo '#open "const";;'∂n'let predef_variables = [' >predef.ml
  41.     Open predef.ml;
  42.     Search -q /'/* "'≈'","'≈'" */'/ ::runtime:globals.h >>predef.ml
  43.     Find • predef.ml
  44.     Replace -c ∞ /≈'/* "'(≈)®1'","'(≈)®2'" */'/ '{qual="®1"; id="®2"};' predef.ml
  45.     Clear \;\ predef.ml
  46.     Echo '];;'∂n'let predef_exn = [' >>predef.ml
  47.     Search -q /'/* "'≈'","'≈'",'[0-9]+' */'/ ::runtime:fail.h >>predef.ml
  48.     Find • predef.ml
  49.     Replace -c ∞ /≈'/* "'(≈)®1'","'(≈)®2'",'([0-9]+)®3' */'/ '({qual="®1"; id="®2"}, ®3);' predef.ml
  50.     Clear \;\ predef.ml
  51.     Echo '];;' >>predef.ml
  52.     Close -y predef.ml
  53.  
  54. .zi ƒ .mli
  55.     {CAMLCOMP} {COMPFLAGS} {Default}.mli
  56.  
  57. .zo ƒ .ml
  58.     {CAMLCOMP} {COMPFLAGS} {Default}.ml
  59.  
  60. depend ƒ prim_c.ml predef.ml
  61.     Move -y Makefile Makefile.bak
  62. # FMC also possible instead of sed.
  63. # Streamedit -d -e '1,/ç•### DO NOT DELETE THIS LINE/ Print .'
  64.     (sed -n -e '1,/^### DO NOT DELETE THIS LINE/p' Makefile.bak; ∂
  65.          ::tools:camldep -I ::compiler: ≈.ml) > Makefile
  66.     Delete Makefile.bak
  67.  
  68. ### EVERYTHING THAT GOES BEYOND THIS COMMENT IS GENERATED
  69. ### DO NOT DELETE THIS LINE
  70. link.zo ƒ ::compiler:reloc.zo tr_const.zo ::compiler:config.zi ∂
  71.     ::compiler:const.zo ::compiler:emit_phr.zo ::compiler:misc.zi ∂
  72.     symtable.zo patch.zo ::compiler:instruct.zo ::compiler:opcodes.zo 
  73. main.zo ƒ link.zo ::compiler:config.zi ::compiler:misc.zi version.zo ∂
  74.     symtable.zo readword.zo 
  75. patch.zo ƒ symtable.zo ::compiler:reloc.zo 
  76. predef.zo ƒ ::compiler:const.zo 
  77. symtable.zo ƒ predef.zo ::compiler:misc.zi prim_c.zo ::compiler:const.zo 
  78. tr_const.zo ƒ symtable.zo ::compiler:const.zo 
  79.